package io;

import java.util.ArrayList;
import java.util.Collection;
import java.util.concurrent.Semaphore;

/**
 *
 * @author Mariano Zapata
 */
public class ListaSincronizada<E> extends ArrayList<E> {
    
    private Semaphore semaforo;
    
    public ListaSincronizada()
    {
        super();
        semaforo= new Semaphore(1, true);
    }
    
    public ListaSincronizada(Collection<E> c)
    {
        super(c);
        semaforo= new Semaphore(1, true);
    }
    
    public ListaSincronizada(int capacidadInicial)
    {
        super(capacidadInicial);
        semaforo= new Semaphore(1, true);
    }
    
    public void adquirir() throws InterruptedException {
        semaforo.acquire();
    }
    
    public void liberar() {
        semaforo.release();
    }
}
